#ifndef _U2TestRenderable_H__
#define _U2TestRenderable_H__


#include "U2PreRequest.h"
#include "U2Renderable.h"
#include "U2Texture.h"


U2EG_NAMESPACE_BEGIN


class TextureUnitState;


class _U2Share U2TestRenderable : public U2Renderable
{
public:
    U2TestRenderable();
    virtual ~U2TestRenderable();

    /** Initialise */
    virtual void initialise(void);

    /// internal method for setting up geometry, called by OverlayElement::update
    virtual void updatePositionGeometry(void);

    /// Called to update the texture coords when layers change
    virtual void updateTextureGeometry(void);

    /** Gets the render operation required to send this object to the frame buffer.
    */
    virtual void getRenderOperation(U2RenderOperation& op);

    virtual void initialise2(void);

    TextureUnitState* getTextureUnitState();

protected:
    U2RenderOperation               mRenderOp;
    u2real                          mU1, mV1, mU2, mV2;

    U2TexturePtr                    mTex;
    TextureUnitState*               m_pt;
};


U2EG_NAMESPACE_END


#endif
